%--Chapter 1. Introduction --
%--UTF8---
%
\chapter{介绍}
\section{如何构建一个LFS系统}
使用已经安装的Linux系统(比如Debian，Mandriva，Red Hat或者SUSE)可以构建一个LFS系统。这个已经存在的主机系统用来提供一些开始工作必须的程序，包括用于构建新系统的编译器，链接器，以及Shell环境。记得在安装Linux分支的时候选择“开发”组件以包含这些工具。

作为一种替代方法，你可以使用LFS的LiveCD或者其他商业发布版本的LiveCD，从而避免在你的机器上安装一个独立的Linux发布版环境。LFS LiveCD能够像一个主机系统一样工作，并且可以提供所有本书中构建指令所需要的工具。“-nosrc”或者“-min”版本的LiveCD是最适合用来构建当前的LFS系统的。关于LFS LivdCD的更多信息，或者想要下载一个LiveCD，请访问http://wwww.linuxfromscratch.org/livecd。

\iffalse
\noindent\colorbox{GreenYellow}{
\parbox{\textwidth-4\fboxsep}{
\begin{description}
\item[注意] \hfill \\
LFS Live可能不支持较新的硬件配置，比如一些SATA硬盘，有可能出现启动失败、检测设备失败的现象。
\end{description}
}}
\fi

\begin{note}
LFS Live可能不支持较新的硬件配置，比如一些SATA硬盘，有可能出现启动失败、检测设备失败的现象。
\end{note}

这本书的第二章描述了如何创建一个新的Linux原生分区和文件系统。我们将使用这个环境来编译和安装新的LFS系统。第三章解释了在构建LFS系统中需要下载的包和补丁，以及如何把它们保存在新的文件系统中。第四章讨论了如何建立合适的工作环境。请仔细阅读第四章，因为其中解释了许多在开始进行第5章和后续工作前需要注意的重要事宜。

第五章描述了一些基础开发套件（或者我们可以称其为工具链）的安装，我们需要使用这些工具来构建第六章中的实际系统。某些包可能需要解决递归依赖，比如在编译编译器的时候，我们需要一个编译器才能工作。

第五章同时展示了构建工具链的第一步，包括Binutils、GCC（第一步基本上就是指这两个核心包的安装）。接下来的步骤就是构建Glibc（C函数库）。Glibc将使用第一步中构建的工具链程序来编译。之后，开始进行构建工具链的第二步。这一次，工具链将会使用新构建的Glibc来进行动态链接。第五章其他部分的包都使用第二部中的工具链来构建。完成这些之后，LFS安装就不需要再依赖于主机分发版系统（正在运行的内核除外）。

这些使新系统独立于主机系统的工作可能看起来很极端。关于为何这样做的完整的技术说明，请参考5.2节---“工具链技术公告”。

在第六章中，我们构建起完整的LFS系统。chroot程序用来进入一个虚拟环境，并且开启一个新的shell。虚拟环境的根目录被设置为LFS分区。这与重启并且指定内核挂载LFS分区作为根分区很类似。系统并不会真正重启，取而代之的是chroot。因为创建可启动的系统需要额外的工作，但是我们现在还没有必要这么做。这样做的主要优势在于：chroot允许在构建LFS系统的同时继续使用主机系统。在等待一个包编译完成的过程中，你仍然可以正常使用你的计算机。

第七章介绍了如何设置LFS启动脚本（LFS-Bootscripts）以完成我们的安装。内核和启动加载器（boot loader）的设置在第八章中介绍。第九章包含超出于本书之外的一些继续LFS体验的信息。完成本书中的步骤后，计算将可以重启进入新的LFS系统。

这只是一些简单的介绍，关于每一步骤的更详细的信息我们会在后续的章节和包描述中讨论。在你进行LFS冒险的过程中，我们会清晰地解释那些复杂的项目，并且我们确保所有的事情都在有条不紊的进行。

\section{较上一版的更新}
如下是自上一版以来包的变化情况：
更新：
\begin{itemize}
\item Autoconf 2.67
\item Binutils 2.20.1
\item Bison 2.4.3
\item Diffutils 3.0
\item E2fsprogs 1.41.12
\item Expect 5.44.1.15
\item Gawk 3.1.8
\item GCC 4.5.1
\item Gettext 0.18.1.1
\item GMP 5.0.1
\item Grep 2.6.3
\item GRUB 1.98
\item Inetutils 1.8
\item IPRoute2 2.6.35
\item Kbd 1.15.2
\item LFS-Bootscripts 20100627
\item Libtool 2.2.10
\item Linux 2.6.35.4
\item M4 1.4.14
\item Make 3.82
\item Man-DB 2.5.7
\item Man-pages 3.25
\item Module-Init-Tools 3.12
\item MPC 0.8.2
\item MPFR 3.0.0
\item Perl 5.12.1
\item Pkg-config 0.25
\item Psmisc 22.12
\item Tar 1.23
\item Udev 161
\item Util-Linux-NG 2.18
\item Zlib 1.2.5
\end{itemize}
新增：
\begin{itemize}
\item bash-4.1-fixes-2.patch
\item bzip2-1.0.5-version\_fixes-1.patch
\item expect-5.44.1.15-no\_tk-1.patch
\item glibc-2.12.1-makefile\_fix-1.patch
\item linux-2.6.35.4-mm\_locking-1.patch
\item MPC-0.8.2
\item udev-161-testfiles.tar.bz2
\end{itemize}
移除：
\begin{itemize}
\item expect-5.43.0-spawn-1.patch
\item expect-5.43.0-tcl\_8.5.5\_fix-1.patch
\item gettext-0.17-upstream\_fixes-2.patch
\item grep-2.5.4-debian\_fixes-1.patch
\item make-3.81-upstream\_fixes-1.patch
\item perl-5.10.1-utf8-1.patch
\item vim-7.2-fixes-5.patch
\end{itemize}

\section{更新历史}
忽略

\section{资源}
\subsection{FAQ}
\subsection{邮件列表}
\subsection{IRC}
\subsection{镜像站点}
\subsection{联系信息}

\section{帮助}
\subsection{需要的信息}
\subsection{配置脚本问题}
\subsection{编译问题}



